package gestionBulletins.model.persistance;

import gestionBulletins.model.persistance.sqliteImpl.DaoFactorySqliteImpl;

/**
 * Constructeur de fabrique à DAO
 * @author Paraita Wohler
 *
 */
public class DaoFactoryBuilder {
	
	public static enum TypePersistance { Sqlite }
	public static TypePersistance currentType = TypePersistance.Sqlite;
	
	/**
	 * permet de configurer le type de persistance à utiliser dans l'application
	 * @param t le type de persistance qu'on peut utiliser. Se référer à l'enum <code>TypePersistance</code> de cette classe
	 */
	public static void setTypePersistance(TypePersistance t) {
		currentType = t;
	}
	
	/**
	 * permet de récupérer le type de persistance pour lequel est configuré le constructeur de fabrique de DAO
	 * @return le type de persistance actuellement configuré
	 */
	public static TypePersistance getTypePersistance() {
		return currentType;
	}
	
	/**
	 * permet de récupérer la fabrique approprié au type de persistance souhaité
	 * @return la fabrique qui sait gérer la persistance configurée
	 */
	public static DaoFactory getDaoFactory() {
		switch(currentType) {
		case Sqlite:
			return new DaoFactorySqliteImpl();
		}
		return null;
	}

}
